#ifndef OUTPUT_H
#define OUTPUT_H
#include "ntk_vs.h";
#include "onafhankelijkeData.h";
/*
--------------------------structs en types--------------------------
*/
//de input die uitvoer nodig heeft om de output te genereren
struct outputInvoer{
	int ingesteldeSnelheid; //de snelheid die in de CC is ingesteld
	int huidigeSnelheid; //de snelheid die het voertuig op dit moment rijdt
	Status stat; //de status van het systeem op dit moment
};
typedef struct outputInvoer outputInvoer;
//de struct van de output die dient meegegeven te worden aan alle opdrachten
struct output{
	task* taak; //de taak waarop de output loopt
	mailBox Todo; //de mailbox van de struct zelf waar deze data op binnen krijgt
	mailBox Uitvoer; //de mailbox waar deze data naar toe schrijft indien gevraagd.
	event dataOpOut; //de data staat klaar in de mailbox
};
typedef struct output output;

/*
--------------------------Methodes en functies--------------------------
*/
//Deze opdracht geeft de mailbox terug waarop de uit te voeren actie staat.
mailBox *GiveOutputOut(output *out);
//Deze opdracht zorgt voor de initialisatie van de attributen van een output
void outputInit(output *out);
//Dit is de taak van de output die actief alle output genereerd. Deze moet handmatig worden aangezet.
unsigned __stdcall outputStart(void* arg);
//Deze opdracht verwijdert alle attributen van output
void outputDelete(output *out);
#endif